// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CC_TEST_TEST_SHARED_BITMAP_MANAGER_H_
#define CC_TEST_TEST_SHARED_BITMAP_MANAGER_H_

#include <map>

#include "base/synchronization/lock.h"
#include "cc/resources/shared_bitmap_manager.h"

namespace base {
class SharedMemory;
} // namespace base

namespace cc {

class TestSharedBitmapManager : public SharedBitmapManager {
public:
    TestSharedBitmapManager();
    ~TestSharedBitmapManager() override;

    std::unique_ptr<SharedBitmap> AllocateSharedBitmap(
        const gfx::Size& size) override;

    std::unique_ptr<SharedBitmap> GetSharedBitmapFromId(
        const gfx::Size&,
        const SharedBitmapId& id) override;

private:
    base::Lock lock_;
    std::map<SharedBitmapId, base::SharedMemory*> bitmap_map_;
};

} // namespace cc

#endif // CC_TEST_TEST_SHARED_BITMAP_MANAGER_H_
